/* -*-jde-*- */
/* <Euler.java> */
package Practica1.util;

import java.util.List;

/**
 * Cualquier objeto que implemente esta interfaz debera cumplir con
 * el contrato de encontrar un circuito euleriano
 *
 * @author Peralta Santa Anna Victor Miguel
 * @since  Enero 2012
 */
public interface Euler {

    /**
     * Encuentra un circuito euleriano en una gráfica dirigida desde un vértice de inicio.
     *
     * @param graph La grafica.
     * @param vertex El índice del vértice de inicio
     * @return las etiquetas de las aristas por las cuales se hizo el recorrido.
     */
    public List<Edge> getDirectedCircuit(Graph graph, int vertex);

    /**
     * Encuentra un circuito euleriano en una gráfica de Euler
     * La lista de aristas que regresa, son las aristas en el orden en el
     * cual se hizo el recorrido del circuito.
     *
     * @param graph La grafica.
     * @param vertex El índice del vértice de inicio
     * @return las etiquetas de las aristas por las cuales se hizo el recorrido.
     */
    public List<Edge> getCircuit(Graph graph, int vertex);
}
